import Request from '../js_sdk/luch-request/luch-request';
import Vue from 'vue' 

let header =  {};
try {
	const value = uni.getStorageSync('token') || 1;
	const Clientid = uni.getStorageSync('clientID') || 1;

	header = {
		  'Content-Type': 'application/x-www-form-urlencoded;charset=utf8',
		"Authorization": value,
		Clientid: Clientid
	}

} catch (e) {
	// error
}
	
	
const http = new Request({
	baseURL: 'https://60.205.247.188:443/',
	// baseURL: 'http://200.20.34.194/fm/',
	// baseURL: 'http://192.168.1.221/fm/',
	// baseURL: 'https://39.107.152.122/fm/',
	// baseURL: 'http://200.20.32.154',
	timeout: 100000,
	sslVerify: false, // 验证 ssl 证书 仅5+App安卓端支持（HBuilderX 2.3.3+）
	headers: {
	    'Content-Type': 'application/x-www-form-urlencoded;charset=utf8'
	}
});

// 请求拦截器
http.interceptors.request.use((config) => { // 可使用async await 做异步操作
	console.log('网络', config);
	config.header = {
		...config.header,
		'Content-Type': 'application/x-www-form-urlencoded;charset=utf8',
		"Authorization": uni.getStorageSync('token') || 1,
		Clientid: uni.getStorageSync('clientID') || 1
		// a: 1 // 演示拦截器header加参
	}
	if(config.url!='/a/fmInstallCheck/uploadPicture'){
		config.data = {
			...config.data,
			__ajax: "json"
		}
		config.params = {
			...config.params,
			__ajax: "json"
		}
	}
	// 演示custom 用处
	// if (config.custom.auth) {
	//   config.header.token = 'token'
	// }
	// if (config.custom.loading) {
	//  uni.showLoading()
	// }
	/**
	 /* 演示
	 if (!token) { // 如果token不存在，return Promise.reject(config) 会取消本次请求
	    return Promise.reject(config)
	  }
	 **/
	return config
}, config => { // 可使用async await 做异步操作
	return Promise.reject(config)
})

// 响应拦截器
http.interceptors.response.use((response) => {
	/* 对响应成功做点什么 可使用async await 做异步操作*/
	let {
		data,
		config: {
			url
		}
	} = response //data   和apifox中返回的数据结构一样
	console.log(response, '响应拦截');
	// 如果cookie不存在，或者过期，跳转到登录页,  登录接口除外
	if (data.hasOwnProperty('isValidCodeLogin') && data.isValidCodeLogin == false && url != 'a/login') {
		uni.navigateTo({
			url: '/pages/login/login'
		})
	}
	
	
	return response
}, (err) => {
	/*  对响应错误做点什么 （statusCode !== 200）*/
	console.log(err)
	return Promise.reject(err)
})


export {
	http
}
